package org.jeecg.modules.ec.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import org.jeecg.modules.ec.entity.EcEmergencyContact;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.List;

/**
 * @Description: 档案信息管理
 * @Author: jeecg-boot
 * @Date:   2025-09-02
 * @Version: V1.0
 */
@Data
@Schema(description="档案信息管理")
public class EcArchiveInfoPage {

	/**主键*/
	@Schema(description = "主键")
    private java.lang.String id;
	/**创建人*/
	@Schema(description = "创建人")
    private java.lang.String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
	@Schema(description = "更新人")
    private java.lang.String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "更新日期")
    private java.util.Date updateTime;
	/**所属部门*/
	@Schema(description = "所属部门")
    private java.lang.String sysOrgCode;
	/**头像*/
	@Excel(name = "头像", width = 15)
	@Schema(description = "头像")
    private java.lang.String avatar;
	/**登录账号*/
	@Excel(name = "登录账号", width = 15)
	@Schema(description = "登录账号")
    private java.lang.String account;
	/**护理员*/
	@Excel(name = "护理员", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@Schema(description = "护理员")
    private java.lang.String caregiver;
	/**专家姓名*/
	@Excel(name = "专家姓名", width = 15)
	@Schema(description = "专家姓名")
    private java.lang.String expertName;
	/** 会员类型*/
	@Excel(name = " 会员类型", width = 15, dicCode = "membership_type")
    @Dict(dicCode = "membership_type")
	@Schema(description = " 会员类型")
    private java.lang.String membershipType;
	/**会员状态*/
	@Excel(name = "会员状态", width = 15, dicCode = "member_status")
    @Dict(dicCode = "member_status")
	@Schema(description = "会员状态")
    private java.lang.String memberStatus;
	/**会员姓名*/
	@Excel(name = "会员姓名", width = 15)
	@Schema(description = "会员姓名")
    private java.lang.String memberName;
	/**会员昵称*/
	@Excel(name = "会员昵称", width = 15)
	@Schema(description = "会员昵称")
    private java.lang.String memberNickname;
	/**身份证号*/
	@Excel(name = "身份证号", width = 15)
	@Schema(description = "身份证号")
    private java.lang.String idNumber;
	/**手机号码*/
	@Excel(name = "手机号码", width = 15)
	@Schema(description = "手机号码")
    private java.lang.String phone;
	/**会员性别*/
	@Excel(name = "会员性别", width = 15, dicCode = "sex")
    @Dict(dicCode = "sex")
	@Schema(description = "会员性别")
    private java.lang.String memberGender;
	/**电子邮箱*/
	@Excel(name = "电子邮箱", width = 15)
	@Schema(description = "电子邮箱")
    private java.lang.String email;
	/**省市区*/
	@Schema(description = "省市区")
    @Excel(name = "省市区", width = 15,exportConvert=true,importConvert = true )
    private java.lang.String region;

    public String convertisRegion() {
        return SpringContextUtils.getBean(ProvinceCityArea.class).getText(region);
    }

    public void convertsetRegion(String text) {
        this.region = SpringContextUtils.getBean(ProvinceCityArea.class).getCode(text);
    }
	/**详细地址*/
	@Excel(name = "详细地址", width = 15)
	@Schema(description = "详细地址")
    private java.lang.String address;
	/**身份标签*/
	@Excel(name = "身份标签", width = 15, dicCode = "identity_label")
    @Dict(dicCode = "identity_label")
	@Schema(description = "身份标签")
    private java.lang.String identityLabel;
	/**备注*/
	@Excel(name = "备注", width = 15)
	@Schema(description = "备注")
    private java.lang.String remarks;
	/**民族*/
	@Excel(name = "民族", width = 15)
	@Schema(description = "民族")
    private java.lang.String nation;
	/** 籍贯*/
	@Excel(name = " 籍贯", width = 15)
	@Schema(description = " 籍贯")
    private java.lang.String placeOfOrigin;
	/**政治面貌*/
	@Excel(name = "政治面貌", width = 15, dicCode = "political_status")
    @Dict(dicCode = "political_status")
	@Schema(description = "政治面貌")
    private java.lang.String politicalStatus;
	/**文化程度*/
	@Excel(name = "文化程度", width = 15, dicCode = "educational_level")
    @Dict(dicCode = "educational_level")
	@Schema(description = "文化程度")
    private java.lang.String educationalLevel;
	/**人员类别*/
	@Excel(name = "人员类别", width = 15, dicCode = "personnel_category")
    @Dict(dicCode = "personnel_category")
	@Schema(description = "人员类别")
    private java.lang.String personnelCategory;
	/**婚姻状况*/
	@Excel(name = "婚姻状况", width = 15, dicCode = "marital_status")
    @Dict(dicCode = "marital_status")
	@Schema(description = "婚姻状况")
    private java.lang.String maritalStatus;
	/**居住状况*/
	@Excel(name = "居住状况", width = 15, dicCode = "residential_status")
    @Dict(dicCode = "residential_status")
	@Schema(description = "居住状况")
    private java.lang.String residentialStatus;
	/**经济来源*/
	@Excel(name = "经济来源", width = 15, dicCode = "source_of_income")
    @Dict(dicCode = "source_of_income")
	@Schema(description = "经济来源")
    private java.lang.String sourceOfIncome;
	/**原单位*/
	@Excel(name = "原单位", width = 15)
	@Schema(description = "原单位")
    private java.lang.String oldUnit;
	/** 职称*/
	@Excel(name = " 职称", width = 15)
	@Schema(description = " 职称")
    private java.lang.String professionalTitle;
	/**月收入*/
	@Excel(name = "月收入", width = 15)
	@Schema(description = "月收入")
    private java.lang.String monthlyIncome;
	/** 宗教信仰*/
	@Excel(name = " 宗教信仰", width = 15)
	@Schema(description = " 宗教信仰")
    private java.lang.String religiousBelief;
	/**户籍所在地*/
	@Schema(description = "户籍所在地")
    @Excel(name = "户籍所在地", width = 15,exportConvert=true,importConvert = true )
    private java.lang.String registeredResidence;

    public String convertisRegisteredResidence() {
        return SpringContextUtils.getBean(ProvinceCityArea.class).getText(registeredResidence);
    }

    public void convertsetRegisteredResidence(String text) {
        this.registeredResidence = SpringContextUtils.getBean(ProvinceCityArea.class).getCode(text);
    }
	/**户籍类型*/
	@Excel(name = "户籍类型", width = 15, dicCode = "household_type")
    @Dict(dicCode = "household_type")
	@Schema(description = "户籍类型")
    private java.lang.String householdType;
	/**户籍详细地址*/
	@Excel(name = "户籍详细地址", width = 15)
	@Schema(description = "户籍详细地址")
    private java.lang.String householdAddress;
	/**居住详细地址*/
	@Excel(name = "居住详细地址", width = 15)
	@Schema(description = "居住详细地址")
    private java.lang.String residentialDetailedAddress;
	/**社保号*/
	@Excel(name = "社保号", width = 15)
	@Schema(description = "社保号")
    private java.lang.String socialSecurityNumber;
	/**医疗保障*/
	@Excel(name = "医疗保障", width = 15)
	@Schema(description = "医疗保障")
    private java.lang.String medicalSecurity;
	/**血型*/
	@Excel(name = "血型", width = 15, dicCode = "blood_type")
    @Dict(dicCode = "blood_type")
	@Schema(description = "血型")
    private java.lang.String bloodType;
	/**慢性病*/
	@Excel(name = "慢性病", width = 15)
	@Schema(description = "慢性病")
    private java.lang.String chronicDisease;
	/**失能情况*/
	@Excel(name = "失能情况", width = 15, dicCode = "disability_situation")
    @Dict(dicCode = "disability_situation")
	@Schema(description = "失能情况")
    private java.lang.String disabilitySituation;
	/**服务类型*/
	@Excel(name = "服务类型", width = 15, dicCode = "service_type")
    @Dict(dicCode = "service_type")
	@Schema(description = "服务类型")
    private java.lang.String serviceType;

	@ExcelCollection(name="紧急联系人（档案信息管理附表）")
	@Schema(description = "紧急联系人（档案信息管理附表）")
	private List<EcEmergencyContact> ecEmergencyContactList;

}
